import axios from 'axios'
// 创建axios实例
axios.create({
    timeout: 5000, // 设置超时时间
    timeoutErrorMessage: '请求超时' // 设置超时错误信息
});
// 添加请求拦截器
axios.interceptors.request.use((config) => {
    // 在发送请求之前做些什么
    let token = localStorage.getItem('token') // 获取本地存储的token

    if (token) {
        config.headers.Authorization = "Bearer " + token // 将token添加到请求头中
    }
    return config;
}, (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use((response) => {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
}, (error) => {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    if (error.message.includes('timeout')) {
        alert('请求超时') // 弹出请求超时提示
        let code = error.response.status; // 获取错误状态码
        switch (code) {
            case 400:
                console.log('请求出错'); // 请求出错
                break
            case 401:
                console.log('未授权'); // 未授权
                break
            case 403:
                console.log('禁止访问'); // 禁止访问
                break
            case 404:
                console.log('页面飞走了'); // 页面飞走了
                break
            case 500:
                console.log('服务器错误'); // 服务器错误
                break
            case 502:
                console.log('网关错误'); // 网关错误
                break
        }
    }
    return Promise.reject(error);
});
export default axios // 导出axios实例
